/**
 * @author nttdocomo
 */
define(function(require) {
	require("./abstractStore");
	aries.klass("aries.data.Store", aries.data.AbstractStore.extend({

		/**
		 * Finds the index of the first matching Record in this store by a specific field value.
		 *
		 * When store is filtered, finds records only within filter.
		 *
		 * @param {String} fieldName The name of the Record field to test.
		 * @param {Object} value The value to match the field against.
		 * @param {Number} [startIndex=0] The index to start searching at
		 * @return {Number} The matched index or -1
		 */
		findExact : function(property, value, start) {
			return value.get(property);
			/*return this.data.findIndexBy(function(rec) {
			 return rec.isEqual(rec.get(property), value);
			 }, this, start);*/
		},

		/**
		 * Get the Record at the specified index.
		 *
		 * The index is effected by filtering.
		 *
		 * @param {Number} index The index of the Record to find.
		 * @return {Ext.data.Model} The Record at the passed index. Returns undefined if not found.
		 */
		getAt : function(index) {
			return this.at(index);
		},
		getRange : function(start, stop) {
			if (!arguments.length) {
				return this.toArray()
			}
			if (arguments.length <= 1) {
				stop = start || 0;
				start = 0;
			}
			return _.range.apply(this.toArray(), arguments)
		}
	}))
})
